package cn.zyq.ykb.beans.user;

import cn.zyq.ykb.system.common.BaseBean;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.persistence.*;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 用户-推广对象 userPromotion
 *
 * @author SystemAuth
 * @date 2023-05-23
 */
@Data
@Entity
@Table(name = "`userPromotion`")
@JsonInclude(value = JsonInclude.Include.NON_NULL)
public class UserPromotion  extends BaseBean implements Serializable {
    /**
     * 主键id，用于关联
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY, generator = "JDBC")
    @Column(name = "`userPromotionID`")
    @ApiModelProperty("主键id，用于关联")
    private Integer userPromotionID;
    /**
     * 推广人ID
     */
    @Column(name = "`userID`")
    @ApiModelProperty("推广人ID")
    private Integer userID;
    /**
     * 被推广人
     */
    @Column(name = "`pUser`")
    @ApiModelProperty("被推广人")
    private Integer pUser;
    /**
     * 实际收益
     */
    @Column(name = "`realReturn`")
    @ApiModelProperty("实际收益")
    private BigDecimal realReturn;
    /**
     * 贡献收益
     */
    @Column(name = "`contribute`")
    @ApiModelProperty("贡献收益")
    private BigDecimal contribute;
    /**
     * 状态：1已做单，2未做单
     */
    @Column(name = "`state`")
    @ApiModelProperty("做单状态：1已做单，2未做单")
    private Integer state;
    /**
     * 状态：1已推广，2未推广
     */
    @Column(name = "`status`")
    @ApiModelProperty("推广状态：1已推广，2未推广")
    private Integer status;
    /**
     * 推广类型：1.线上版，2.钻石版
     */
    @Column(name = "`promotionType`")
    @ApiModelProperty("推广类型：1.线上版，2.钻石版")
    private Integer promotionType;
    /**
     * 用户推广类型（1直推）
     */
    @Column(name = "`userType`")
    @ApiModelProperty("用户推广类型（1直推）")
    private Integer userType;
    /**
     * 用户级别（1普通用户，2钻石用户，3团队长，4服务商）
     */
    @Column(name = "`position`")
    @ApiModelProperty("用户级别（1普通用户，2钻石用户，3团队长，4服务商）")
    private Integer position;

    @Transient
    @ApiModelProperty("用户表数据")
    private User user;

    @Transient
    @ApiModelProperty("推广人用户表数据")
    private User tUser;
}
